home *** CD-ROM | disk | FTP | other *** search
/ Languguage OS 2 / Languguage OS II Version 10-94 (Knowledge Media)(1994).ISO / language / embedded / m68k / fbug68k.arc / ASMCODE.68S < prev    next >
Text File  |  1989-08-17  |  3KB  |  138 lines

  1. #include "targetsys.h"
  2. file "asmcode68.s"
  3. text
  4. global asmput8,asmput16,asmput32,asmget8,asmget16,asmget32
  5. global putmpu,regdata,asmaddr,asmdata
  6.  
  7. RPC:        long    regdata
  8. RSR:        long    regdata+4
  9. RUSP:        long    regdata+8
  10. RMSP:        long    regdata+12
  11. RISP:        long    regdata+16
  12. RVBR:        long    regdata+20
  13. RCACR:        long    regdata+24
  14. RCAAR:        long    regdata+28
  15. RSFC:        long    regdata+32
  16. RDFC:        long    regdata+36
  17. RD0:        long    regdata+40
  18. #if(DEVICE==68030)
  19. SCRP:        long    regdata+104
  20. SSRP:        long    regdata+112
  21. STC:        long    regdata+120
  22. STT0:        long    regdata+124
  23. STT1:        long    regdata+128
  24. SMMUSR:        long    regdata+134
  25. #endif
  26. #if(DEVICE==68040)
  27. SURP:        long    regdata+104
  28. SSRP:        long    regdata+112
  29. STC:        long    regdata+120
  30. SDTT0:        long    regdata+124
  31. SDTT1:        long    regdata+128
  32. SITT0:        long    regdata+132
  33. SITT1:        long    regdata+136
  34. SMMUSR:        long    regdata+142
  35. #endif
  36. #if(DEVICE==68040 || COPROCESSOR==TRUE)
  37. FPCR:        long    regdata+144
  38. FPSR:        long    regdata+148
  39. FPIAR:        long    regdata+152
  40. FP0:        long    regdata+156
  41. #endif
  42.  
  43. asmput8:     mov.b    asmdata+3,([asmaddr])
  44.         rts
  45.  
  46. asmput16:     mov.w    asmdata+2,([asmaddr])
  47.         rts
  48.  
  49. asmput32:     mov.l    asmdata,([asmaddr])
  50.         rts
  51.  
  52. asmget8:     clr.l    asmdata
  53.         mov.b    ([asmaddr]),asmdata+3
  54.         bpl.b     nosi8
  55.         or.l       &0xffffff00,asmdata
  56. nosi8:        rts
  57.  
  58. asmget16:     clr.l    asmdata
  59.         mov.w    ([asmaddr]),asmdata+2
  60.         bpl.b     nosi16
  61.         or.l       &0xffff0000,asmdata
  62. nosi16:        rts
  63.  
  64. asmget32:     mov.l    ([asmaddr]),asmdata
  65.         rts
  66.  
  67. putmpu:        
  68.         mov.l    ([RUSP]),%d0
  69. #if(DEVICE>=68010)
  70.         mov.l    ([RVBR]),%d1
  71. #endif
  72. #if(DEVICE>=68020)
  73.         mov.l    ([RISP]),%d2
  74.         mov.l    ([RMSP]),%d3
  75.         mov.l    ([RCAAR]),%d4
  76.         mov.l    ([RCACR]),%d5
  77.         mov.l    ([RSFC]),%d6
  78.         mov.l    ([RDFC]),%d7
  79. #endif
  80.         mov.l    %d0,%usp
  81. #if(DEVICE>=68010)
  82.         mov.l    %d1,%vbr
  83. #endif
  84. #if(DEVICE>=68020)
  85.         mov.l    %d2,%isp
  86.         mov.l    %d3,%msp
  87.         mov.l    %d4,%caar
  88.         mov.l    %d5,%cacr
  89.         mov.l    %d6,%sfc
  90.         mov.l    %d7,%dfc
  91. #endif
  92. #if(DEVICE==68030)
  93.         lea.l     ([SCRP]),%a0
  94.         short    0xf010
  95.         short    0x4c00        #pmove (a0),crp
  96.         lea.l     ([SSRP]),%a0
  97.         short    0xf010
  98.         short    0x4800        #pmove (a0),srp
  99.         lea.l     ([STC]),%a0
  100.         short    0xf010
  101.         short    0x4000        #pmove (a0),tc
  102.         lea.l     ([STT0]),%a0
  103.         short    0xf010
  104.         short    0x0800        #pmove (a0),tt0
  105.         lea.l     ([STT1]),%a0
  106.         short    0xf010
  107.         short    0x0c00        #pmove (a0),tt1
  108.         lea.l     ([SMMUSR]),%a0
  109.         short    0xf010
  110.         short    0x6000        #pmove (a0),psr
  111. #endif
  112. #if(DEVICE==68040)
  113.                     #68040 instructions to effect supervisor
  114.                     #programer model support should be
  115.                     #inserted here and below !
  116. #endif
  117. #if(DEVICE==68040 || COPROCESSOR==TRUE)
  118.         lea.l     ([FPCR]),%a0
  119.         short    0xf210
  120.         short    0x9000         #fmove.x (a0),fpcr
  121.         lea.l     ([FPSR]),%a0
  122.         short    0xf210
  123.         short    0x8800         #fmove.x (a0),fpsr
  124.         lea.l     ([FPIAR]),%a0
  125.         short    0xf210
  126.         short    0x8400         #fmove.x (a0),fpiar
  127.         lea.l     ([FP0]),%a0
  128.         short    0xf210
  129.         short    0xd0ff         #fmovem.x (a0),fp0-fp7
  130. #endif
  131.         mov.w    &0x0024,-(%a7)
  132.         mov.l    ([RPC]),-(%a7)
  133.         mov.l    ([RSR]),%d0
  134.         mov.w    %d0,-(%a7)
  135.         movm.l    ([RD0]),&0x7fff
  136.         rte
  137.  
  138.